HTTP 2

❓질문

HTTP/2의 특징에 대해 설명해주세요.


💡 조사하기전 내가 알고 있던 내용

현재 자주 사용하는 HTTP의 버전이 HTTP2 인걸 알고있지만 어떠한 특징이 있는지는 잘 모르겠습니다.


🏫 정리한 내용

HTTP/2는 기존 HTTP/1.1의 단점을 극복하기 위해 만들어진 버전입니다. 전반적으로 로드 속도를 높히고 네트워크 자원을 효율적으로 사용할 수 있도록 기능을 추가되었습니다.

첫번째로는 멀티플렉스 기능을 예로 들 수 있습니다.
기존 1.1버전은 리소스를 차례로 로드하므로 한 리소스를 로드할 수 없는 경우 그 뒤에 있는 다른 모든 리소스가 차단됩니다. 이와는 대조적으로 2버전에서는 단일 TCP 연결을 사용하여 한번에 여러 데이터 스트림을 보낼 수 있으므로 한 리소스 때문에 다른 리소스가 차단되지 않습니다. 이를 통해 병렬 처리가 가능해졌고 이로 인해 리소스 로딩 속도가 크게 개선됐습니다.

두번째로 헤더 압축입니다.
1.1 , 2 버전 모두 HTTP 메세지를 압축하여 더 작게 만듭니다. 그러나 2버전에서는 HTTP헤더 패킷에서 중복 정보를 제거하는 HPACK이라는 고급 압축 방법을 사용합니다. 이렇게 하면 모든 HTTP 패킷에서 몇 바이트가 제거됩니다. 이러한 바이트는 빠르게 합산되어 로드 속도가 빨라집니다.

세번째로는 서버 푸시 기능입니다.
일반적으로 서버는 클라이언트가 요청하는 경우에만 클라이언트 장치에 콘텐츠를 제공합니다. 그러나 이 접근 방식은 클라이언트가 요청해야 하는 수십 개의 개별 리소스를 포함하는 최신 웹페이지에서는 항상 실용적인 것은 아닙니다.
2버전에서는 클라이언트가 요청하기 전에 서버가 클라이언트에 콘텐츠를 "푸쉬"할 수 있도록 하여 이 문제를 해결합니다.

HTTP/3라고 2버전 이상의 버전도 제안되었습니다 그러나 현재 웹에서 널리 채택 되지않았지만 사용량은 늘고 있습니다 주요 차이점으로는 TCP 프로토콜로 통신하던걸 QUIC라는 프로토콜을 통해 실행된다는점입니다. 이는 최신 인터넷의 요구에 맞게 설계된, 더빠르고 안전한 전송 계층 프로토콜입니다.